import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import heck from "./components/heck.vue";
// import listMixin from "./minxis/list";
// import VueI18n from "vue-i18n";
// Vue.use(VueI18n);
// Vue.config.属性=属性或方法;
// 关闭生产模式提示
import ElementUI from "element-ui";
import "element-ui/lib/theme-chalk/index.css";
Vue.use(ElementUI);
Vue.config.productionTip = false;
// 配置是否允许 vue - devtools 检查代码
Vue.config.devtools = true;
//为 Vue 的运行时警告赋予一个自定义处理函数
Vue.config.warnHandler = function(msg, vm, trace) {
    // `trace` 是组件的继承关系追踪
    console.error(msg);
    console.error(trace);
};
// 路由全局前置守卫 路由守卫
// next() 继续跳转
// next(false) 停止跳转
// next("/login") 跳转对应的路由页面
router.beforeEach((to, from, next) => {
    // to--即将进入的组件信息
    // from --即将离开的组件信息
    // next()---继续执行的回调
    console.log(to);
    if (to.name == "catetwo" || to.name == "cart") {
        if (localStorage.token) {
            next();
        } else {
            next("/login");
        }
    }
    if (to.params.ccid) {
        next(false);
    }
    console.log(from);
    next();
});
// 路由全局后置守卫
// router.afterEach((to, from) => {});
// res.data.power=="1"
if ("1" == "1") {
    // 动态添加路由 并跳转
    router.addRoutes([{
        path: "/vip",
        name: "vip",
        component: () =>
            import ("./views/Vip.vue"),
    }, ]);
}

Vue.prototype.$base = "http://www.tianmao.com";
// 兄弟传递 eventsBus
Vue.prototype.$bus = new Vue({});
// 全局组件的注册
Vue.component("heck", heck);
// 全局自定义指令创建

Vue.directive("myfor", {
    // 只调用一次，指令第一次绑定到元素时调用
    bind(el, binding, vnode) {},
    //被绑定元素插入父节点时调用
    inserted(el, binding, vnode) {
        // el--当前元素
        // binding.value--当前指令后的值
        console.log(el); //h1
        console.log(binding.value); //指令后的值

        binding.value.forEach((item) => {
            var nel = el.cloneNode();
            nel.innerHTML = item;
            el.parentNode.appendChild(nel);
        });
    },
    // 被绑定元素所在的模板更新时调用
    update(el, binding, vnode, oldVnode) {},
    // 被绑定元素所在模板完成一次更新周期时调用。
    componentUpdated(el, binding, vnode) {},
    // 解绑调用
    unbind(el, binding, vnode) {},
});

// 全局混入
// Vue.mixin(listMixin);

// 全局过滤器
Vue.filter("two", (val) => {
    // val 代表要处理的数据
    return val.toFixed(2);
});

var vm = new Vue({
    data() {
        return {
            hello: "明天放假",
        };
    },
    methods: {
        krun() {
            alert("今天晚上整点");
        },
    },
    router,
    store,
    render: (h) => h(App),
}).$mount("#app");